// 版权声明，Epic Games 公司保留所有权利

#include "InventoryFragment_SetStats.h"

#include "Inventory/LyraInventoryItemInstance.h"

#include UE_INLINE_GENERATED_CPP_BY_NAME(InventoryFragment_SetStats)

/**
 * 当物品实例被创建时调用，初始化物品属性
 * @param Instance 库存物品实例
 */
void UInventoryFragment_SetStats::OnInstanceCreated(ULyraInventoryItemInstance* Instance) const
{
	// 遍历初始物品属性映射表
	for (const auto& KVP : InitialItemStats)
	{
		Instance->AddStatTagStack(KVP.Key, KVP.Value); // 为实例添加属性标签堆栈
	}
}

/**
 * 根据标签获取物品属性值
 * @param Tag 游戏标签
 * @return 属性值，如果未找到则返回0
 */
int32 UInventoryFragment_SetStats::GetItemStatByTag(FGameplayTag Tag) const
{
	// 在初始物品属性映射表中查找标签
	if (const int32* StatPtr = InitialItemStats.Find(Tag))
	{
		return *StatPtr; // 返回找到的属性值
	}

	return 0; // 未找到则返回0
}